const _0x5c29 = ['setLights', 'center', '.screen-center', 'left', '880800AxTpHm', 'pointerEvents', 'set', 'rotate', 'projection', 'update', 'lnglatToMector', 'oContainer', 'dampingFactor', 'PerspectiveCamera', 'Scene', 'aspect', 'animate', 'init', 'DirectionalLight', 'AxesHelper', 'controls', 'CSS2DRenderer', '677229KmJiCU', 'setSize', 'enableDamping', '2634AdPjGZ', 'screenSpacePanning', 'render', 'setResize', 'position', 'style', 'domElement', 'directionalLight', 'querySelector', 'setCamera', 'OrbitControls', 'createCSS2DRenderer', '36558hhVYPx', 'appendChild', 'none', 'scale', 'height', 'THREE', 'WebGLRenderer', 'scene', 'width', 'rotation', 'setHelper', 'labelRenderer', 'setControls', '3yWkuYw', 'lookAt', 'camera', 'renderer', 'geoMercator', 'absolute', 'add', '438OqDyWW', 'AmbientLight', '816679XrrmbG', '495000cxgpNw', '197785XXyXZy'];
const _0x3b5b0d = _0x4d7b;
(function (_0x40e2ce, _0x219e3d) {
  const _0x463c82 = _0x4d7b;
  while (!![]) {
    try {
      const _0x12c66b = -parseInt(_0x463c82(0xe6)) * parseInt(_0x463c82(0xc8)) + -parseInt(_0x463c82(0xf2)) + parseInt(_0x463c82(0xe3)) + parseInt(_0x463c82(0xcb)) + -parseInt(_0x463c82(0xca)) + -parseInt(_0x463c82(0xcc)) * -parseInt(_0x463c82(0xff)) + parseInt(_0x463c82(0xd1));
      if (_0x12c66b === _0x219e3d) break;
      else _0x40e2ce['push'](_0x40e2ce['shift']());
    } catch (_0x16f845) {
      _0x40e2ce['push'](_0x40e2ce['shift']());
    }
  }
}(_0x5c29, 0x9c1df));
import * as _0x33556c from 'd3-geo';
const THREE = window[_0x3b5b0d(0xf7)];

function _0x4d7b(_0x3730b5, _0x3524f0) {
  return _0x4d7b = function (_0x5c29a7, _0x4d7b1a) {
    _0x5c29a7 = _0x5c29a7 - 0xc4;
    let _0x48ef67 = _0x5c29[_0x5c29a7];
    return _0x48ef67;
  }, _0x4d7b(_0x3730b5, _0x3524f0);
}
class ThreejsBasicMap {
  constructor() {
    const _0x46580a = _0x3b5b0d;
    this['scene'] = '', this[_0x46580a(0x101)] = '', this[_0x46580a(0xc4)] = '', this[_0x46580a(0xe1)] = '', this[_0x46580a(0xd8)] = document[_0x46580a(0xee)](_0x46580a(0xcf)), this[_0x46580a(0xfa)] = parseFloat(getComputedStyle(this['oContainer'])[_0x46580a(0xfa)]), this[_0x46580a(0xf6)] = parseFloat(getComputedStyle(this[_0x46580a(0xd8)])[_0x46580a(0xf6)]), this[_0x46580a(0xde)]();
  } ['init']() {
    const _0x427279 = _0x3b5b0d;
    this[_0x427279(0xf9)] = new THREE[(_0x427279(0xdb))](), this['camera'] = new THREE[(_0x427279(0xda))](0x4b, this[_0x427279(0xfa)] / this[_0x427279(0xf6)], 0.1, 0x3e8), this[_0x427279(0xef)]({
      'x': 38.41029180845184,
      'y': 0.07234368170544414,
      'z': 49.33836488544698
    }), this[_0x427279(0xc4)] = new THREE[(_0x427279(0xf8))]({
      'antialias': !![],
      'alpha': !![]
    }), this[_0x427279(0xc4)][_0x427279(0xe4)](this[_0x427279(0xfa)], this[_0x427279(0xf6)]), this[_0x427279(0xd8)][_0x427279(0xf3)](this[_0x427279(0xc4)][_0x427279(0xec)]), this[_0x427279(0xfe)](), this[_0x427279(0xcd)](), this[_0x427279(0xe9)](), this['createCSS2DRenderer'](), this[_0x427279(0xdd)]();
  } [_0x3b5b0d(0xef)]({
    x: _0x4369c7,
    y: _0x2e260d,
    z: _0x32be58
  }) {
    const _0x3b5e9b = _0x3b5b0d;
    this[_0x3b5e9b(0x101)]['up']['x'] = 0x0, this['camera']['up']['y'] = 0x0, this[_0x3b5e9b(0x101)]['up']['z'] = 0x1, this[_0x3b5e9b(0x101)][_0x3b5e9b(0xea)][_0x3b5e9b(0xd3)](_0x4369c7, _0x2e260d, _0x32be58), this[_0x3b5e9b(0x101)][_0x3b5e9b(0x100)](0x0, 0x0, 0x0);
  } [_0x3b5b0d(0xfe)]() {
    const _0x28729b = _0x3b5b0d;
    this[_0x28729b(0xe1)] = new THREE[(_0x28729b(0xf0))](this['camera'], this[_0x28729b(0xc4)][_0x28729b(0xec)]), this[_0x28729b(0xe1)][_0x28729b(0xe5)] = !![], this[_0x28729b(0xe1)][_0x28729b(0xd9)] = 0.05, this[_0x28729b(0xe1)][_0x28729b(0xe7)] = ![], this[_0x28729b(0xe1)]['maxPolarAngle'] = Math['PI'] / 0x2, this[_0x28729b(0xe1)][_0x28729b(0xd6)]();
  } [_0x3b5b0d(0xcd)]() {
    const _0x419c62 = _0x3b5b0d,
      _0x1b88c1 = new THREE[(_0x419c62(0xc9))](0xbbbbbb);
    this[_0x419c62(0xf9)][_0x419c62(0xc7)](_0x1b88c1), this[_0x419c62(0xed)] = new THREE[(_0x419c62(0xdf))](0x333333), this['directionalLight'][_0x419c62(0xea)]['set'](-0xa, 0x14, 0x28), this[_0x419c62(0xf9)][_0x419c62(0xc7)](this[_0x419c62(0xed)]);
  } [_0x3b5b0d(0xfc)]() {
    const _0x7072f6 = _0x3b5b0d,
      _0x43658d = new THREE[(_0x7072f6(0xe0))](0x14);
    this[_0x7072f6(0xf9)][_0x7072f6(0xc7)](_0x43658d);
    const _0x5babba = new THREE['DirectionalLightHelper'](this['directionalLight'], 0x5);
    this['scene'][_0x7072f6(0xc7)](_0x5babba);
    const _0x1c722e = new THREE['GridHelper'](0x64, 0x32);
    _0x1c722e[_0x7072f6(0xfb)]['x'] = -Math['PI'] * 0.5, this[_0x7072f6(0xf9)]['add'](_0x1c722e);
  } ['setResize']() {
    window['addEventListener']('resize', () => {
      const _0x4db9a7 = _0x4d7b;
      this[_0x4db9a7(0xfa)] = parseFloat(getComputedStyle(this[_0x4db9a7(0xd8)])['width']), this[_0x4db9a7(0xf6)] = parseFloat(getComputedStyle(this[_0x4db9a7(0xd8)])[_0x4db9a7(0xf6)]), this[_0x4db9a7(0xc4)][_0x4db9a7(0xe4)](this[_0x4db9a7(0xfa)], this['height']), this[_0x4db9a7(0xfd)][_0x4db9a7(0xe4)](this[_0x4db9a7(0xfa)], this[_0x4db9a7(0xf6)]), this[_0x4db9a7(0xfd)][_0x4db9a7(0xe8)](this[_0x4db9a7(0xf9)], this[_0x4db9a7(0x101)]), this[_0x4db9a7(0x101)][_0x4db9a7(0xdc)] = this[_0x4db9a7(0xfa)] / this[_0x4db9a7(0xf6)], this[_0x4db9a7(0x101)]['updateProjectionMatrix']();
    });
  } [_0x3b5b0d(0xf1)]() {
    const _0x1a9500 = _0x3b5b0d;
    this[_0x1a9500(0xfd)] = new THREE[(_0x1a9500(0xe2))](), this['labelRenderer'][_0x1a9500(0xe4)](this['width'], this['height']), this[_0x1a9500(0xfd)][_0x1a9500(0xec)][_0x1a9500(0xeb)]['position'] = _0x1a9500(0xc6), this[_0x1a9500(0xfd)][_0x1a9500(0xec)][_0x1a9500(0xeb)]['top'] = '0', this[_0x1a9500(0xfd)][_0x1a9500(0xec)][_0x1a9500(0xeb)][_0x1a9500(0xd0)] = '0', this[_0x1a9500(0xfd)][_0x1a9500(0xec)][_0x1a9500(0xeb)][_0x1a9500(0xd2)] = _0x1a9500(0xf4), this[_0x1a9500(0xd8)]['appendChild'](this['labelRenderer'][_0x1a9500(0xec)]);
  } [_0x3b5b0d(0xdd)]() {
    const _0x3d6928 = _0x3b5b0d;
    requestAnimationFrame(this[_0x3d6928(0xdd)]['bind'](this)), this['controls']['update'](), this['renderer']['render'](this[_0x3d6928(0xf9)], this['camera']), this['labelRenderer'][_0x3d6928(0xe8)](this[_0x3d6928(0xf9)], this[_0x3d6928(0x101)]);
  } [_0x3b5b0d(0xd7)](_0x3e9f11) {
    const _0x31f7ee = _0x3b5b0d;
    !this[_0x31f7ee(0xd5)] && (this['projection'] = _0x33556c[_0x31f7ee(0xc5)]()[_0x31f7ee(0xce)]([108.616181, 22.802971])[_0x31f7ee(0xf5)](0x3e8)[_0x31f7ee(0xd4)](Math['PI'] / 0x4)['translate']([0x0, 0x0]));
    const [_0x57a6f4, _0x22b750] = this['projection']([..._0x3e9f11]), _0x20b8ab = 0x0;
    return [_0x22b750, _0x57a6f4, _0x20b8ab];
  }
}
export default ThreejsBasicMap;
